package ljl.alg.wangzheng_camp.round1.array_and_list;

import commons.ListNode;

public class _83_remove_duplicate {
    /**
     * 居然做错了我日
     * 13k！
     * 13k！
     * */
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode pre = head, cur = head.next;
        while (cur != null) {
            // 如果不同，一起往后走
            if (pre.val != cur.val) {
                pre.next = cur;
                pre = cur;
            }
            // 否则只有 cur 自己往后走，pre 不变
            cur = cur.next;
        }
        pre.next = null;
        
        return head;
    }
    
    /**
     * 为什么！
     * 为什么别人总比我聪明！
     * 擦！
     * 擦！
     * */
    public ListNode deleteDuplicates2(ListNode head) {
        if (head == null) return null;
        ListNode cur = head;
        while (cur.next != null) {
            if (cur.val == cur.next.val) {
                cur.next = cur.next.next;
            } else
                cur = cur.next;
        }
        return head;
    }
}
